.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_Sign" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_Sign \- sign the hash data of an object with a signing key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_Sign(TSS_HHASH " hHash ",              TSS_HKEY " hKey ","
.BI "                          UINT32    " pulSignatureLength ", BYTE**   " prgbSignature ");"
.fi
.sp
.ad
.hy

.SH "DESCRIPTION"
.PP
\fBTspi_Hash_Sign\fR signs the hash data of an
object with a given signing key. The data must be set at the hash
instance associated with \fIhHash\fR by calling
\fBTspi_Hash_SetHashValue\fR or \fBTspi_Hash_UpdateHash\fR. The
\fBTspi_Hash_Sign\fR method allocates a memory block for the
\fIprgbSignature\fR data. This memory must be released using
\fBTspi_Context_FreeMemory\fR.

.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS hKey
Handle to the key object which should be used for the signature.
.SS pulSignatureLength
Receives the length of the signature data returned at the parameter
\fIprgbSignature\fR on successful completion.
.SS prgbSignature
Receives a pointer to the signature data on successful completion.

.SH "RETURN CODES"
.PP
\fBTspi_Hash_Sign\fR returns TSS_SUCCESS on success, otherwise one
of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKey\fR is not a valid handle.

.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.

.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.

.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.

.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.

.TP
.SM TSS_E_HASH_NO_IDENTIFIER
The hash algorithm identifier is not set.


.SH "CONFORMING TO"

.PP
\fBTspi_Hash_Sign\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden

.SH "SEE ALSO"

.PP
\fBTspi_Hash_UpdateHash\fR(3), \fBTspi_Hash_SetHashValue\fR(3),
\fBTspi_Hash_VerifySignature\fR(3).

